// filepath: /home/debi/IdeaProjects/LearnRust/Work/basic/src/corex/charx/charx.rs
// stdx/charx.rs
// CRITICAL: Char 相关示例。展示字符操作、转换与属性检查。
// AUTO_COMMENT: 该文件为学习用途，示例尽量简短、安全。

#[allow(dead_code)]
pub fn stdx_examples_charx() {
    // CRITICAL: 字符创建与基本属性
    let c: char = 'a';
    let is_alphabetic = c.is_alphabetic();
    let is_numeric = c.is_numeric();
    let is_whitespace = c.is_whitespace();

    // CRITICAL: 字符大小写转换
    let upper = c.to_uppercase().next().unwrap();
    let lower = c.to_lowercase().next().unwrap();

    // CRITICAL: 字符的 Unicode 类别
    let category = c as u32; // Unicode 码点
    let is_ascii = c.is_ascii();

    // CRITICAL: 字符的编码长度
    let len_utf8 = c.len_utf8();
    let len_utf16 = c.len_utf16();

    // CRITICAL: 字符的转义
    let escaped = c.escape_default().to_string();

    // CRITICAL: 字符的映射和转换
    let digit = c.to_digit(10); // 如果是数字字符

    // CRITICAL: 字符的迭代（大小写转换可能产生多个字符）
    let mut uppercase_iter = 'ß'.to_uppercase();
    let first_upper = uppercase_iter.next();
    let second_upper = uppercase_iter.next();

    let _ = (
        is_alphabetic,
        is_numeric,
        is_whitespace,
        upper,
        lower,
        category,
        is_ascii,
        len_utf8,
        len_utf16,
        escaped,
        digit,
        first_upper,
        second_upper,
    );
}
